In many conventional memory systems, such as random access memory, binary digits (bits) are stored in memory cells, and are accessed by a processor that specifies a linear address that is associated with the given cell. This system provides rapid access to any portion of the memory system within certain limitations. To facilitate processor control, each operation that accesses memory must declare, as a part of the instruction, the address of the memory cell/cells required. Standard memory systems are not well designed for a content based search. Content based searches in standard memory require a software based algorithmic search under the control of the microprocessor. Many memory operations are required to perform a search. These searches are neither quick nor efficient in using processor resources.
To overcome these inadequacies an associative memory system called Content Addressable Memory (CAM) has been developed. CAM allows cells to be referenced by their contents, so it has first found use in lookup table implementations such as cache memory subsystems and is now rapidly finding use in networking systems. CAM's most valuable feature is its ability to perform a search and compare of multiple locations as a single operation, in which search data is compared with data stored within the CAM. Typically search data is loaded onto search lines and compared with stored words in the CAM. During a search-and-compare operation, a match or mismatch signal associated with each stored word is generated, indicating whether the search word matches a stored word or not.
A CAM stores data in a matrix of cells, which are generally either SRAM based cells or DRAM based cells. Until recently, SRAM based CAM cells have been most common because of their simple implementation. However, to provide ternary state CAMs, ie. where the match operation returns a “0”, “1” or “don't care” result, ternary state SRAM based cells typically require 16 transistors compared to DRAM based cell of 6 transistors. As a result, ternary state SRAM based CAMs have a much lower packing density than ternary DRAM cells.
To provide the desired search and compare function in a DRAM or SRAM based CAM, matchline sensing circuits are required. Each matchline sensing circuit returns the appropriate state of its matchline, and the outputs of each matchline sensing circuit can be subsequently processed to determine the existence and address of a match. A prior art matchline sensing circuit is disclosed in commonly owned Canadian Patent Application No. 2,273,665, filed on Jun. 17, 1999, the contents of which are incorporated herein by reference. In the matchline sensing scheme of the prior art, each matchline is initially precharged high to the fill VDD supply. A matchline will be discharged to ground if the contents of its stored word do not match, or mismatch, the search word, but will remain at the VDD supply if the stored word matches the search word. Each matchline potential level is compared to a fixed reference voltage, and the matchline sensing circuit generates a result from the comparison.
There are several disadvantages in the matchline sensing scheme of the prior art. Charge sharing between the VDD precharged matchline and the CAM cells will cause the matchline potential to fluctuate as a function of the previous cycle search data. This can cause a matchline sense circuit to generate a false result from the subsequent comparison. This problem becomes increasingly significant as CAM array cell densities increase.
To attain higher packing density, CAM cell transistors use minimum feature sizes. Hence the current capacity of a CAM cell to ground a fully precharged matchline is small, resulting in very slow discharge of the matchline, and increasing the overall search and compare operation of the CAM chip. Inherent parasitic capacitance of the matchline compounds this problem, which increases as CAM arrays become larger.
The optimal sensing margin for the matchline sense circuit should be sufficient for the circuit to easily distinguish if the matchline potential level is above or below the reference voltage. This optimal sensing margin is attained at the time when the matchline voltage level has decreased to a potential level well below the reference voltage. Unfortunately, the poor voltage discharge rate of the matchline previously described only allows accurate sensing to be performed at a prolonged time after the matchline voltage begins to fall.
Sensing can be performed at a time shortly after the matchline voltage drops below the reference voltage if the reference voltage is maintained at a precise level. This is difficult to accomplish due to process variations in the fabrication of the CAM chip, which can alter the reference voltage level beyond the original design specifications.
Power consumption of the prior art matchline sense circuit is high since any discharged matchlines must be precharged back to VDD level in preparation for the next search and compare operation. Power consumption can be expressed as P≈CML×VDD×ΔV×ƒ where CML is the matchline parasitic capacitance, ΔV is the difference between VDD and the discharged potential level of the matchline at the sensing time and ƒ is the frequency of operation. If ΔV is large, then the power consumed will be large, possibly exceeding the power dissipation capability of the package. The prior art match line circuit required all search lines to be held at a low logic level during the match line precharge phase. Even if search data did not change substantially during successive search operations considerable power was consumed as search lines were brought low at the beginning of the match line precharge phase and brought high again for the actual search operation.
There is clearly a need for a matchline sensing circuit capable of consuming very little power and detecting matchline potential levels accurately at high speed.